Adding a Sparkline Column


In Spread.Views, you can use sparklines to display data trends in a small graph. The sparklines display the most recent value at the right-most data point and compare the value to the previous values.

The following table lists the formulas for different sparklines:

Sparkline Formula Description
PIESPARKLINE =PIESPARKLINE(column\percentage,color1?,color2?,.....) For column\percentage:
If column, column value should be a number or a number array.
If percent, the percentage is the value.
If parse value is invalid, it will be treated as 0.
ColorInfo:
- Color parameter count is more than or equal to range count, values and colors are one-to-one correspondence.
- Color parametr count is less than the range count, it recycles given colors and uses a linear gradient to ensure each sector has a different color.
- If there is no color, it uses "darkgray" as default.
LINESPARKLINE =LINESPARKLINE(data, dateAxisData?, setting?) where:
data - a column reference represents sparkline data
dateAxisData - a column reference represents sparkline date axis data.
setting - a string with JSON formatNote: dateAxisData and setting is optional and each value of "setting" property has a default value.
COLUMNSPARKLINE =COLUMNSPARKLINE(data, dateAxisData?, setting?) where:
data - a column reference represents sparkline data
dateAxisData - a column reference represents sparkline date axis data.
setting - a string with JSON formatNote: dateAxisData and setting is optional and each value of "setting" property has a default value.
WINLOSSSPARKLINE =WINLOSSSPARKLINE(data, dateAxisData?, setting?) where:
data - a column reference represents sparkline data
dateAxisData - a column reference represents sparkline date axis data.
setting - a string with JSON formatNote: dateAxisData and setting is optional and each value of "setting" property has a default value.

Use the following steps to add different types of sparklines, such as PIESPARKLINE, LINESPARKLINE, COLUMNSPARKLINE and WINLOSSSPARKLINE. The image displays various sales trends:

Sample Code

  1. Add the following reference after the DataView reference.

       <script src="./gc.spread.views.sparkline.10.40.20162.0.min.js">
  2. Define the different sparkline variables to render while creating a grid.

      function renderWinlosssparkline(data, container) {
            var newData = [];
            newData.push(data.may - standard);
            newData.push(data.june - standard);
            newData.push(data.july - standard);
            newData.push(data.aug - standard);
            newData.push(data.sept - standard);
            newData.push(data.oct - standard);
            var winlossSparkline = new GC.Spread.Views.Plugins.Sparkline.WinlossSparkline({
                values: newData,
                setting: {
                    axisColor: '#0C0A3E',
                    markersColor: '#FED766',
                    negativeColor: '#FED766',
                    seriesColor: '#995D81',
                    displayXAxis: true,
                    showFirst: true,
                    showHigh: true,
                    showLast: true,
                    showLow: true,
                    showNegative: true,
                    showMarkers: true
                }
            });
            winlossSparkline.paint(container);
        }
    
        var lineSparklineSetting = {
            highMarkerColor: '#995D81',
            lowMarkerColor: '#FED766',
            markersColor: 'black',
            seriesColor: '#009FB7',
            showMarkers: true,
            showHigh: true,
            showLow: true,
            lineWeight: 2,
            minAxisType: 2,
            maxAxisType: 2,
            manualMax: 25000,
            manualMin: 0
        };
        var columnSparklineSettings = {
            highMarkerColor: '#995D81',
            lowMarkerColor: '#FED766',
            markersColor: 'black',
            seriesColor: '#009FB7',
            showMarkers: true,
            showHigh: true,
            showLow: true,
            minAxisType: 2,
            maxAxisType: 2,
            manualMax: 25000,
            manualMin: 0
        };
        var lineSparklineFormula = '=LINESPARKLINE("may,june,july,aug,sept,oct", "", "' + JSON.stringify(lineSparklineSetting).replace(/\"/g, '') + '")';
        var columnSparklineFormula = '=COLUMNSPARKLINE("may,june,july,aug,sept,oct", "", "' + JSON.stringify(columnSparklineSettings).replace(/\"/g, '') + '")';
        var smallDevice = screen.width <= 480;
        var colWidthSmall = smallDevice ? 125 : '*';
        var colWidthLarge = smallDevice ? 125 : '2*';
  3. Add the column definition.

    var columns = [{
                id: 'salesPerson',
                caption: 'Sales Person',
                dataField: 'Salesperson',
                width: colWidthSmall
            }, {
                id: 'may',
                caption: 'May',
                dataField: 'May',
                dataType: 'number',
                format: '$#,##'
            }, {
                id: 'june',
                caption: 'June',
                dataField: 'June',
                dataType: 'number',
                format: '$#,##'
            }, {
                id: 'july',
                caption: 'July',
                dataField: 'July',
                dataType: 'number',
                format: '$#,##'
            }, {
                id: 'aug',
                caption: 'Aug.',
                dataField: 'Aug',
                dataType: 'number',
                format: '$#,##'
            }, {
                id: 'sept',
                caption: 'Sept.',
                dataField: 'Sept',
                dataType: 'number',
                format: '$#,##'
            }, {
                id: 'oct',
                caption: 'Oct.',
                dataField: 'Oct',
                dataType: 'number',
                format: '$#,##'
            }, {
                id: 'trend',
                caption: 'LineSparkline',
                width: colWidthLarge,
                dataField: lineSparklineFormula
            }, {
                id: 'sales',
                caption: 'ColumnSparkline',
                width: colWidthLarge,
                dataField: columnSparklineFormula,
                visible: !smallDevice
            }, {
                id: 'winloss',
                caption: 'WinlossSparkline',
                width: colWidthLarge,
                asyncRender: renderWinlosssparkline,
                visible: !smallDevice
        }, ];
  4. Initialize the code by calling the grid ID from the DIV tag.

     dataView = new GC.Spread.Views.DataView(document.getElementById('grid1'), data, columns,
                new GC.Spread.Views.Plugins.GridLayout({
                    rowHeight: 32
            }));

See Also

rowHeight